Optical disk drives, in particular the category of Digital Versatile Disk (DVD) drives and Compact Disk (CD) drives, are widely employed in consumer electronic products such as DVD players and recorders. This kind of product has a firmware code memory device and a controller that executes the firmware code. With the firmware code, the optical disk drive can read data files stored on the Compact Disk Read Only Memory (CD-ROM) or DVD, write data files on the CD-ROM or DVD, and playback music CD, video DVD or music DVD. This firmware code is usually stored in non-volatile semiconductor memory devices, such as the erasable-programmable read-only memory (EPROM) or electrically erasable-programmable read-only memory (EEPROM).
Often, the firmware code of these products may be modified to correct program problems (program bugs) and provide additional functionality (improvements).
Conventional solutions to modifying the firmware code of these products have involved replacement of the firmware code stored in the semiconductor memory device with a new firmware code. If the semiconductor memory used for storing the firmware code is a device like an EPROM, it must be removed from its inserted socket or de-soldered from the printed circuit board so as to implement reprogramming of its memory content.
If the semiconductor memory used for storing the firmware code is a device like an EEPROM, the firmware can be modified (rewritten) by executing an upgraded firmware code. Many manufacturers now provide optical disks storing upgraded firmware code for end users. The end users may insert the optical disk to the disk drive to execute the upgraded firmware code stored in the optical disk. As a result, the firmware code stored in the semiconductor of the product may be replaced with the upgraded firmware code.
However, the above described conventional solution which allows the end user to upgrade the firmware may create serious problems. Conventionally, the application ware which rewrites the firmware upon upgrading command is compressed and stored in EEPROM, together with the other programming code for the optical disk device. Therefore the firmware image can be rewritten only after the whole firmware is erased. However, if an abnormality occurs during the rewriting procedure, the EEPROM may be wiped out (no firmware code) or the EEPROM may store a corrupted firmware code.
As such, the conventional solutions to upgrading the firmware associated with the optical disk drive may render the whole product inoperable especially when the upgrading was terminated by unexpected event such as power failure, invalid application ware, disk read error and the like. Consequently, an improved method for safe way to upgrade firmware without rendering the device inoperable is necessary.